.o-btn {
  --btn-color: var(--o-color-info2);
  --btn-color-hover: var(--o-color-info1);
  --btn-color-active: var(--o-color-info1);

  --btn-bd-color: var(--o-color-control1);
  --btn-bd-color-hover: var(--o-color-control2);
  --btn-bd-color-active: var(--o-color-control3);
  --btn-bd-color-disabled: var(--o-color-control1);

  &.o-btn-solid {
    --btn-color: var(--o-color-white);
    --btn-color-hover: var(--o-color-white);
    --btn-color-active: var(--o-color-white);
    --btn-color-disabled: var(--o-color-white);

    --btn-bg-color: var(--o-color-control1-light);
    --btn-bg-color-hover: var(--o-color-control2-light);
    --btn-bg-color-active: var(--o-color-control3-light);
    --btn-bd-color-disabled: var(--o-color-control4-light);

    --btn-bd-color: var(--o-color-control1-light);
    --btn-bd-color-hover: var(--o-color-control2-light);
    --btn-bd-color-active: var(--o-color-control3-light);
    --btn-bg-color-disabled: var(--o-color-control4-light);
  }

  &.o-btn-text {
    --btn-bg-color-hover: var(--o-color-control1-light);
    --btn-bg-color-active: var(--o-color-control2-light);
  }
}
.o-btn-normal {
  --btn-color-disabled: var(--o-color-info4);
  &.o-btn-solid {
    --btn-color: var(--o-color-info2);
    --btn-color-hover: var(--o-color-info2);
    --btn-color-active: var(--o-color-info2);
    --btn-color-disabled: var(--o-color-info4);
  }
}
.o-btn-primary {
  --btn-color: var(--o-color-primary1);
  --btn-color-hover: var(--o-color-primary2);
  --btn-color-active: var(--o-color-primary3);
  --btn-color-disabled: var(--o-color-primary4);

  --btn-bd-color: var(--o-color-primary1);
  --btn-bd-color-hover: var(--o-color-primary2);
  --btn-bd-color-active: var(--o-color-primary3);
  --btn-bd-color-disabled: var(--o-color-primary4);

  &.o-btn-solid {
    --btn-bg-color: var(--o-color-primary1);
    --btn-bg-color-hover: var(--o-color-primary2);
    --btn-bg-color-active: var(--o-color-primary3);
    --btn-bg-color-disabled: var(--o-color-primary4);

    --btn-bd-color: var(--o-color-primary1);
    --btn-bd-color-hover: var(--o-color-primary2);
    --btn-bd-color-active: var(--o-color-primary3);
    --btn-bd-color-disabled: var(--o-color-primary4);
  }

  &.o-btn-text {
    --btn-bg-color-hover: var(--o-color-primary1-light);
    --btn-bg-color-active: var(--o-color-primary2-light);
  }
}
.o-btn-success {
  --btn-color: var(--o-color-success1);
  --btn-color-hover: var(--o-color-success2);
  --btn-color-active: var(--o-color-success3);
  --btn-color-disabled: var(--o-color-success4);

  --btn-bd-color: var(--o-color-success1);
  --btn-bd-color-hover: var(--o-color-success2);
  --btn-bd-color-active: var(--o-color-success3);
  --btn-bd-color-disabled: var(--o-color-success4);

  &.o-btn-solid {
    --btn-bg-color: var(--o-color-success1);
    --btn-bg-color-hover: var(--o-color-success2);
    --btn-bg-color-active: var(--o-color-success3);
    --btn-bg-color-disabled: var(--o-color-success4);

    --btn-bd-color: var(--o-color-success1);
    --btn-bd-color-hover: var(--o-color-success2);
    --btn-bd-color-active: var(--o-color-success3);
  }

  &.o-btn-text {
    --btn-bg-color-hover: var(--o-color-success1-light);
    --btn-bg-color-active: var(--o-color-success2-light);
  }
}
.o-btn-warning {
  --btn-color: var(--o-color-warning1);
  --btn-color-hover: var(--o-color-warning2);
  --btn-color-active: var(--o-color-warning3);
  --btn-color-disabled: var(--o-color-warning4);

  --btn-bd-color: var(--o-color-warning1);
  --btn-bd-color-hover: var(--o-color-warning2);
  --btn-bd-color-active: var(--o-color-warning3);
  --btn-bd-color-disabled: var(--o-color-warning4);

  &.o-btn-solid {
    --btn-bg-color: var(--o-color-warning1);
    --btn-bg-color-hover: var(--o-color-warning2);
    --btn-bg-color-active: var(--o-color-warning3);
    --btn-bg-color-disabled: var(--o-color-warning4);

    --btn-bd-color: var(--o-color-warning1);
    --btn-bd-color-hover: var(--o-color-warning2);
    --btn-bd-color-active: var(--o-color-warning3);
  }

  &.o-btn-text {
    --btn-bg-color-hover: var(--o-color-warning1-light);
    --btn-bg-color-active: var(--o-color-warning2-light);
  }

  &.o-btn-disabled {
    --btn-color: var(--o-color-warning4);
    --btn-bg-color: var(--o-color-warning4);
    --btn-bd-color: var(--o-color-warning4);
  }
}
.o-btn-danger {
  --btn-color: var(--o-color-danger1);
  --btn-color-hover: var(--o-color-danger2);
  --btn-color-active: var(--o-color-danger3);
  --btn-color-disabled: var(--o-color-danger4);

  --btn-bd-color: var(--o-color-danger1);
  --btn-bd-color-hover: var(--o-color-danger2);
  --btn-bd-color-active: var(--o-color-danger3);
  --btn-bd-color-disabled: var(--o-color-danger4);

  &.o-btn-solid {
    --btn-bg-color: var(--o-color-danger1);
    --btn-bg-color-hover: var(--o-color-danger2);
    --btn-bg-color-active: var(--o-color-danger3);
    --btn-bg-color-disabled: var(--o-color-danger4);

    --btn-bd-color: var(--o-color-danger1);
    --btn-bd-color-hover: var(--o-color-danger2);
    --btn-bd-color-active: var(--o-color-danger3);
  }

  &.o-btn-text {
    --btn-bg-color-hover: var(--o-color-danger1-light);
    --btn-bg-color-active: var(--o-color-danger2-light);
  }
}

.o-btn-small {
  --btn-radius: var(--o-radius_control-xs);
  --btn-gap: 2px;
  --btn-gap-prefix: var(--btn-gap);
  --btn-gap-suffix: var(--btn-gap);
  --btn-padding: 0 11px;
  --btn-icon-size: var(--o-icon_size-xs);
  --btn-height: var(--o-control_size-s);
}
.o-btn-medium {
  --btn-min-width: 80px;

  --btn-radius: var(--o-radius_control-s);
  --btn-gap: 8px;
  --btn-gap-prefix: var(--btn-gap);
  --btn-gap-suffix: var(--btn-gap);
  --btn-padding: 0 15px;
  --btn-icon-size: var(--o-icon_size-xs);
  --btn-height: var(--o-control_size-m);
}
.o-btn-large {
  --btn-min-width: 96px;

  --btn-radius: var(--o-radius_control-s);
  --btn-gap: 8px;
  --btn-gap-prefix: var(--btn-gap);
  --btn-gap-suffix: var(--btn-gap);
  --btn-padding: 0 23px;
  --btn-icon-size: var(--o-icon_size-m);
  --btn-height: var(--o-control_size-l);
}
.o-btn-icon-only {
  --btn-padding: 0;
}
.o-btn-round-pill {
  --btn-radius: var(--o-control_size-l);
  --btn-gap: 6px;
}

.o-btn-text {
  --btn-bd-color-disabled: transparent;
}
